Field Data Type এবং তাদের প্রয়োগ

Latest Technologies - ইলাস্টিকসার্চ (ElasticSearch) - Data Mapping এবং Schema Design | NCTB BOOK

Elasticsearch-এ Field Data Type এবং তাদের প্রয়োগ

Elasticsearch-এ Field Data Type হলো একটি গুরুত্বপূর্ণ উপাদান, যা নির্ধারণ করে প্রতিটি ফিল্ড কী ধরনের ডেটা ধারণ করবে। এটি Elasticsearch-কে ডেটা সঠিকভাবে ইন্ডেক্স করতে এবং সার্চ অপারেশন কার্যকরী করতে সহায়ক করে। Elasticsearch বিভিন্ন ধরনের ডেটা টাইপ সমর্থন করে, যেমন text, keyword, integer, date, এবং আরও অনেক। প্রতিটি ডেটা টাইপের নির্দিষ্ট ব্যবহার এবং প্রয়োগ রয়েছে, যা নিচে আলোচনা করা হলো।

১. Text Data Type

  • Text ডেটা টাইপ মূলত ফ্রি-টেক্সট বা বড় টেক্সট কনটেন্ট সংরক্ষণের জন্য ব্যবহৃত হয়। এটি সাধারণত টোকেনাইজ এবং এনালাইসিস করা হয়, যাতে ফ্রি-টেক্সট সার্চ করা যায়।
  • Text ডেটা টাইপ সাধারণত এমন ফিল্ডে ব্যবহার করা হয়, যেখানে বড় আকারের টেক্সট বা বিবরণ সংরক্ষিত থাকে, যেমন ডকুমেন্টের শিরোনাম, বিবরণ, বা কনটেন্ট।

উদাহরণ:

{
  "properties": {
    "description": {
      "type": "text",
      "analyzer": "standard"
    }
  }
}
  • এখানে "description" ফিল্ডে text টাইপ ব্যবহার করা হয়েছে, যা ফ্রি-টেক্সট ডেটা সংরক্ষণ করবে এবং "standard" অ্যানালাইজার ব্যবহার করে টোকেনাইজ করা হবে।

২. Keyword Data Type

  • Keyword ডেটা টাইপ সুনির্দিষ্ট কিওয়ার্ড বা টার্ম সংরক্ষণের জন্য ব্যবহৃত হয়, যা ইন্ডেক্স এবং এক্সাক্ট ম্যাচ সার্চের জন্য উপযোগী।
  • Keyword সাধারণত এমন ক্ষেত্রে ব্যবহৃত হয়, যেখানে ফিল্ডে ছোট এবং নির্দিষ্ট মান সংরক্ষণ করা হয়, যেমন স্ট্যাটাস, ক্যাটেগরি, আইডি, বা কোড।

উদাহরণ:

{
  "properties": {
    "status": {
      "type": "keyword"
    }
  }
}
  • এখানে "status" ফিল্ডে keyword টাইপ ব্যবহার করা হয়েছে, যা এক্সাক্ট ম্যাচ সার্চের জন্য সঠিক।

৩. Numeric Data Types (সংখ্যামূলক ডেটা টাইপ)

Elasticsearch-এ কয়েকটি Numeric ডেটা টাইপ রয়েছে:

  • integer: সম্পূর্ণ সংখ্যা সংরক্ষণের জন্য।
  • long: বড় আকারের সংখ্যা (৬৪-বিট) সংরক্ষণের জন্য।
  • float: দশমিক সংখ্যা সংরক্ষণের জন্য (৩২-বিট)।
  • double: উচ্চ-নির্ভুলতার দশমিক সংখ্যা (৬৪-বিট) সংরক্ষণের জন্য।

Numeric ডেটা টাইপ সাধারণত সংখ্যা, বয়স, স্কোর, প্রাইস, বা অন্যান্য গাণিতিক মান সংরক্ষণের জন্য ব্যবহৃত হয়।

উদাহরণ:

{
  "properties": {
    "price": {
      "type": "float"
    },
    "quantity": {
      "type": "integer"
    }
  }
}
  • এখানে "price" ফিল্ডে float এবং "quantity" ফিল্ডে integer টাইপ ব্যবহার করা হয়েছে।

৪. Date Data Type

  • Date ডেটা টাইপ তারিখ এবং সময় সংরক্ষণের জন্য ব্যবহৃত হয়। Elasticsearch-এ তারিখ বিভিন্ন ফরম্যাটে সংরক্ষণ করা যায় এবং ডিফল্টভাবে এটি ISO 8601 ফরম্যাট সমর্থন করে।
  • Date টাইপ সাধারণত তারিখ, সময়, বা লগ এন্ট্রির সময়সংক্রান্ত ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়।

উদাহরণ:

{
  "properties": {
    "join_date": {
      "type": "date",
      "format": "yyyy-MM-dd"
    }
  }
}
  • এখানে "join_date" ফিল্ডে date টাইপ ব্যবহার করা হয়েছে এবং "yyyy-MM-dd" ফরম্যাট নির্ধারণ করা হয়েছে।

৫. Boolean Data Type

  • Boolean ডেটা টাইপ true বা false মান সংরক্ষণের জন্য ব্যবহৃত হয়।
  • এটি সাধারণত এমন ক্ষেত্রে ব্যবহৃত হয় যেখানে হ্যাঁ বা না, সক্রিয় বা নিষ্ক্রিয় অবস্থা চিহ্নিত করতে হয়।

উদাহরণ:

{
  "properties": {
    "is_active": {
      "type": "boolean"
    }
  }
}
  • এখানে "is_active" ফিল্ডে boolean টাইপ ব্যবহার করা হয়েছে, যা সক্রিয় বা নিষ্ক্রিয় অবস্থা সংরক্ষণ করবে।

৬. Geo-Point Data Type

  • geo_point ডেটা টাইপ ভৌগোলিক স্থান সংরক্ষণের জন্য ব্যবহৃত হয়, যা ল্যাটিটিউড এবং লংগিটিউড মান ধারণ করে।
  • এটি সাধারণত অবস্থান সম্পর্কিত ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়, যেমন লোকেশন, ঠিকানা, বা স্থানীয় দোকানের অবস্থান।

উদাহরণ:

{
  "properties": {
    "location": {
      "type": "geo_point"
    }
  }
}
  • এখানে "location" ফিল্ডে geo_point টাইপ ব্যবহার করা হয়েছে, যা একটি ভৌগোলিক পয়েন্ট ধারণ করবে।

৭. Object এবং Nested Data Type

  • Object ডেটা টাইপ একটি ডকুমেন্টের মধ্যে অন্য ডকুমেন্ট সংরক্ষণের জন্য ব্যবহৃত হয়। এটি সাধারণত অবজেক্ট বা জটিল ডেটা স্ট্রাকচার সংরক্ষণের জন্য উপযুক্ত।
  • Nested টাইপ একটি বিশেষ ধরনের Object, যা অবজেক্টের ভেতরের ডেটাকে আলাদাভাবে ইন্ডেক্স করে, যাতে জটিল কোয়েরি চালানো যায়।

Object উদাহরণ:

{
  "properties": {
    "address": {
      "type": "object",
      "properties": {
        "street": { "type": "text" },
        "city": { "type": "keyword" },
        "zipcode": { "type": "integer" }
      }
    }
  }
}
  • এখানে "address" ফিল্ড একটি object টাইপ, যেখানে street, city, এবং zipcode সংরক্ষিত হয়েছে।

Nested উদাহরণ:

{
  "properties": {
    "comments": {
      "type": "nested",
      "properties": {
        "user": { "type": "keyword" },
        "message": { "type": "text" },
        "created_at": { "type": "date" }
      }
    }
  }
}
  • এখানে "comments" ফিল্ড nested টাইপ ব্যবহার করা হয়েছে, যা প্রতিটি মন্তব্যের জন্য আলাদা ডকুমেন্ট হিসেবে কাজ করবে।

৮. IP Data Type

  • ip ডেটা টাইপ IPv4 বা IPv6 অ্যাড্রেস সংরক্ষণের জন্য ব্যবহৃত হয়। এটি সাধারণত লগ ডেটা বা নেটওয়ার্ক সম্পর্কিত ডেটা সংরক্ষণের জন্য উপযুক্ত।

উদাহরণ:

{
  "properties": {
    "client_ip": {
      "type": "ip"
    }
  }
}
  • এখানে "client_ip" ফিল্ডে ip টাইপ ব্যবহার করা হয়েছে, যা ক্লায়েন্টের IP ঠিকানা ধারণ করবে।

৯. Completion Data Type

  • completion টাইপ Elasticsearch-এ অটো-কমপ্লিশন সার্চ করার জন্য ব্যবহৃত হয়। এটি দ্রুত সার্চ সাজেশন তৈরি করতে সহায়ক।
  • এটি সাধারণত সার্চ বক্সে ইনপুটের সময় দ্রুত সাজেশন তৈরি করতে ব্যবহার করা হয়।

উদাহরণ:

{
  "properties": {
    "suggest": {
      "type": "completion"
    }
  }
}
  • এখানে "suggest" ফিল্ডে completion টাইপ ব্যবহার করা হয়েছে, যা ইনপুট টেক্সটের জন্য দ্রুত সাজেশন প্রদান করবে।

উপসংহার

Elasticsearch-এ Field Data Type এবং তাদের প্রয়োগ সঠিকভাবে নির্ধারণ করা জরুরি, কারণ এটি ডেটা ইন্ডেক্স এবং সার্চ অপারেশনের কার্যকারিতা ও পারফরম্যান্স নির্ধারণ করে। প্রতিটি ডেটা টাইপ নির্দিষ্ট প্রয়োজনের উপর ভিত্তি করে ব্যবহার করা উচিত। সঠিক ডেটা টাইপ নির্বাচন করে এবং সেটি কনফিগার করে, Elasticsearch-কে আরও কার্যকর এবং দ্রুততর করে তোলা সম্ভব।

Content added By
Promotion